From: Eh2406 Date: Sun, 18 Mar 2018 02:44:30 +0000 (-0400) Subject: A slow and ugly solution, but it works. X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~2^2~12^2~7 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22Program/%22http:/www.example.com/cgi/%22https:/%22Program?a=commitdiff_plain;h=816203eb8eb4f6b9fd9cee35ce4aa1ca419cc005;p=cargo.git A slow and ugly solution, but it works. --- diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index 0e266ecf2..851af2d53 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -1280,6 +1280,26 @@ fn activate_deps_loop( has_past_conflicting_dep = true; } } + if !has_past_conflicting_dep { + 'deps: for debs in remaining_deps.iter() { + for (_, (other_dep, _, _)) in debs.remaining_siblings.clone() { + if let Some(conflict) = past_conflicting_activations + .get(&other_dep) + .and_then(|past_bad| { + past_bad + .iter() + .find(|conflicting| conflicting.get(&pid).is_some()) + }) { + conflicting_activations.insert( + debs.parent.package_id().clone(), + conflict.get(&pid).unwrap().clone(), + ); + has_past_conflicting_dep = true; + break 'deps; + } + } + } + } // Ok if we're in a "known failure" state for this frame we // may want to skip it altogether though. We don't want to